package com.mercycrazy.springframework.beans.factory.config;

import com.mercycrazy.springframework.beans.BeansException;
import com.mercycrazy.springframework.beans.factory.ConfigurableListableBeanFactory;

/**
 * TODO Comment
 *
 * @author <a href="mailto:1443424326@qq.com">mercycrazy</a>
 * @since 2022-11-26
 */
public interface BeanFactoryPostProcessor {

    /**
     * 在所有的 BeanDefinition 加载完成后，且将 Bean 对象实例化之前，提供修改 BeanDefinition 属性的机制
     *
     * @param beanFactory Bean 工厂
     * @throws BeansException 修改 BeanDefinition 失败，抛出异常
     */
    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
}
